'Weak Dependency Graph [60.0]'
------------------------------
Answer:           YES(?,O(n^1))
Input Problem:    innermost runtime-complexity with respect to
  Rules:
    {  rev(nil()) -> nil()
     , rev(rev(x)) -> x
     , rev(++(x, y)) -> ++(rev(y), rev(x))
     , ++(nil(), y) -> y
     , ++(x, nil()) -> x
     , ++(.(x, y), z) -> .(x, ++(y, z))
     , ++(x, ++(y, z)) -> ++(++(x, y), z)
     , make(x) -> .(x, nil())}

Details:         
  We have computed the following set of weak (innermost) dependency pairs:
   {  rev^#(nil()) -> c_0()
    , rev^#(rev(x)) -> c_1()
    , rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))
    , ++^#(nil(), y) -> c_3()
    , ++^#(x, nil()) -> c_4()
    , ++^#(.(x, y), z) -> c_5(++^#(y, z))
    , ++^#(x, ++(y, z)) -> c_6(++^#(++(x, y), z))
    , make^#(x) -> c_7()}
  
  The usable rules are:
   {  rev(nil()) -> nil()
    , rev(rev(x)) -> x
    , rev(++(x, y)) -> ++(rev(y), rev(x))
    , ++(nil(), y) -> y
    , ++(x, nil()) -> x
    , ++(.(x, y), z) -> .(x, ++(y, z))
    , ++(x, ++(y, z)) -> ++(++(x, y), z)}
  
  The estimated dependency graph contains the following edges:
   {rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))}
     ==> {++^#(x, ++(y, z)) -> c_6(++^#(++(x, y), z))}
   {rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))}
     ==> {++^#(.(x, y), z) -> c_5(++^#(y, z))}
   {rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))}
     ==> {++^#(x, nil()) -> c_4()}
   {rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))}
     ==> {++^#(nil(), y) -> c_3()}
   {++^#(.(x, y), z) -> c_5(++^#(y, z))}
     ==> {++^#(x, ++(y, z)) -> c_6(++^#(++(x, y), z))}
   {++^#(.(x, y), z) -> c_5(++^#(y, z))}
     ==> {++^#(.(x, y), z) -> c_5(++^#(y, z))}
   {++^#(.(x, y), z) -> c_5(++^#(y, z))}
     ==> {++^#(x, nil()) -> c_4()}
   {++^#(.(x, y), z) -> c_5(++^#(y, z))}
     ==> {++^#(nil(), y) -> c_3()}
   {++^#(x, ++(y, z)) -> c_6(++^#(++(x, y), z))}
     ==> {++^#(x, ++(y, z)) -> c_6(++^#(++(x, y), z))}
   {++^#(x, ++(y, z)) -> c_6(++^#(++(x, y), z))}
     ==> {++^#(.(x, y), z) -> c_5(++^#(y, z))}
   {++^#(x, ++(y, z)) -> c_6(++^#(++(x, y), z))}
     ==> {++^#(x, nil()) -> c_4()}
   {++^#(x, ++(y, z)) -> c_6(++^#(++(x, y), z))}
     ==> {++^#(nil(), y) -> c_3()}
  
  We consider the following path(s):
   1) {  rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))
       , ++^#(x, ++(y, z)) -> c_6(++^#(++(x, y), z))
       , ++^#(.(x, y), z) -> c_5(++^#(y, z))}
      
      The usable rules for this path are the following:
      {  rev(nil()) -> nil()
       , rev(rev(x)) -> x
       , rev(++(x, y)) -> ++(rev(y), rev(x))
       , ++(nil(), y) -> y
       , ++(x, nil()) -> x
       , ++(.(x, y), z) -> .(x, ++(y, z))
       , ++(x, ++(y, z)) -> ++(++(x, y), z)}
      
        We have applied the subprocessor on the union of usable rules and weak (innermost) dependency pairs.
        
          'Weight Gap Principle'
          ----------------------
          Answer:           YES(?,O(n^1))
          Input Problem:    innermost runtime-complexity with respect to
            Rules:
              {  rev(nil()) -> nil()
               , rev(rev(x)) -> x
               , rev(++(x, y)) -> ++(rev(y), rev(x))
               , ++(nil(), y) -> y
               , ++(x, nil()) -> x
               , ++(.(x, y), z) -> .(x, ++(y, z))
               , ++(x, ++(y, z)) -> ++(++(x, y), z)
               , rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))
               , ++^#(x, ++(y, z)) -> c_6(++^#(++(x, y), z))
               , ++^#(.(x, y), z) -> c_5(++^#(y, z))}
          
          Details:         
            We apply the weight gap principle, strictly orienting the rules
            {  rev(nil()) -> nil()
             , rev(rev(x)) -> x}
            and weakly orienting the rules
            {}
            using the following strongly linear interpretation:
              Processor 'Matrix Interpretation' oriented the following rules strictly:
              
              {  rev(nil()) -> nil()
               , rev(rev(x)) -> x}
              
              Details:
                 Interpretation Functions:
                  rev(x1) = [1] x1 + [1]
                  nil() = [0]
                  ++(x1, x2) = [1] x1 + [1] x2 + [0]
                  .(x1, x2) = [1] x1 + [1] x2 + [0]
                  make(x1) = [0] x1 + [0]
                  rev^#(x1) = [1] x1 + [1]
                  c_0() = [0]
                  c_1() = [0]
                  c_2(x1) = [1] x1 + [1]
                  ++^#(x1, x2) = [1] x1 + [1] x2 + [0]
                  c_3() = [0]
                  c_4() = [0]
                  c_5(x1) = [1] x1 + [1]
                  c_6(x1) = [1] x1 + [1]
                  make^#(x1) = [0] x1 + [0]
                  c_7() = [0]
              
            Finally we apply the subprocessor
            We apply the weight gap principle, strictly orienting the rules
            {rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))}
            and weakly orienting the rules
            {  rev(nil()) -> nil()
             , rev(rev(x)) -> x}
            using the following strongly linear interpretation:
              Processor 'Matrix Interpretation' oriented the following rules strictly:
              
              {rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))}
              
              Details:
                 Interpretation Functions:
                  rev(x1) = [1] x1 + [1]
                  nil() = [0]
                  ++(x1, x2) = [1] x1 + [1] x2 + [0]
                  .(x1, x2) = [1] x1 + [1] x2 + [0]
                  make(x1) = [0] x1 + [0]
                  rev^#(x1) = [1] x1 + [9]
                  c_0() = [0]
                  c_1() = [0]
                  c_2(x1) = [1] x1 + [4]
                  ++^#(x1, x2) = [1] x1 + [1] x2 + [2]
                  c_3() = [0]
                  c_4() = [0]
                  c_5(x1) = [1] x1 + [3]
                  c_6(x1) = [1] x1 + [0]
                  make^#(x1) = [0] x1 + [0]
                  c_7() = [0]
              
            Finally we apply the subprocessor
            We apply the weight gap principle, strictly orienting the rules
            {++^#(.(x, y), z) -> c_5(++^#(y, z))}
            and weakly orienting the rules
            {  rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))
             , rev(nil()) -> nil()
             , rev(rev(x)) -> x}
            using the following strongly linear interpretation:
              Processor 'Matrix Interpretation' oriented the following rules strictly:
              
              {++^#(.(x, y), z) -> c_5(++^#(y, z))}
              
              Details:
                 Interpretation Functions:
                  rev(x1) = [1] x1 + [1]
                  nil() = [0]
                  ++(x1, x2) = [1] x1 + [1] x2 + [0]
                  .(x1, x2) = [1] x1 + [1] x2 + [8]
                  make(x1) = [0] x1 + [0]
                  rev^#(x1) = [1] x1 + [9]
                  c_0() = [0]
                  c_1() = [0]
                  c_2(x1) = [1] x1 + [1]
                  ++^#(x1, x2) = [1] x1 + [1] x2 + [0]
                  c_3() = [0]
                  c_4() = [0]
                  c_5(x1) = [1] x1 + [0]
                  c_6(x1) = [1] x1 + [2]
                  make^#(x1) = [0] x1 + [0]
                  c_7() = [0]
              
            Finally we apply the subprocessor
            We apply the weight gap principle, strictly orienting the rules
            {  ++(nil(), y) -> y
             , ++(x, nil()) -> x}
            and weakly orienting the rules
            {  ++^#(.(x, y), z) -> c_5(++^#(y, z))
             , rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))
             , rev(nil()) -> nil()
             , rev(rev(x)) -> x}
            using the following strongly linear interpretation:
              Processor 'Matrix Interpretation' oriented the following rules strictly:
              
              {  ++(nil(), y) -> y
               , ++(x, nil()) -> x}
              
              Details:
                 Interpretation Functions:
                  rev(x1) = [1] x1 + [1]
                  nil() = [7]
                  ++(x1, x2) = [1] x1 + [1] x2 + [8]
                  .(x1, x2) = [1] x1 + [1] x2 + [12]
                  make(x1) = [0] x1 + [0]
                  rev^#(x1) = [1] x1 + [9]
                  c_0() = [0]
                  c_1() = [0]
                  c_2(x1) = [1] x1 + [1]
                  ++^#(x1, x2) = [1] x1 + [1] x2 + [8]
                  c_3() = [0]
                  c_4() = [0]
                  c_5(x1) = [1] x1 + [1]
                  c_6(x1) = [1] x1 + [0]
                  make^#(x1) = [0] x1 + [0]
                  c_7() = [0]
              
            Finally we apply the subprocessor
            'fastest of 'combine', 'Bounds with default enrichment', 'Bounds with default enrichment''
            ------------------------------------------------------------------------------------------
            Answer:           YES(?,O(n^1))
            Input Problem:    innermost relative runtime-complexity with respect to
              Strict Rules:
                {  rev(++(x, y)) -> ++(rev(y), rev(x))
                 , ++(.(x, y), z) -> .(x, ++(y, z))
                 , ++(x, ++(y, z)) -> ++(++(x, y), z)
                 , ++^#(x, ++(y, z)) -> c_6(++^#(++(x, y), z))}
              Weak Rules:
                {  ++(nil(), y) -> y
                 , ++(x, nil()) -> x
                 , ++^#(.(x, y), z) -> c_5(++^#(y, z))
                 , rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))
                 , rev(nil()) -> nil()
                 , rev(rev(x)) -> x}
            
            Details:         
              The problem was solved by processor 'Bounds with default enrichment':
              'Bounds with default enrichment'
              --------------------------------
              Answer:           YES(?,O(n^1))
              Input Problem:    innermost relative runtime-complexity with respect to
                Strict Rules:
                  {  rev(++(x, y)) -> ++(rev(y), rev(x))
                   , ++(.(x, y), z) -> .(x, ++(y, z))
                   , ++(x, ++(y, z)) -> ++(++(x, y), z)
                   , ++^#(x, ++(y, z)) -> c_6(++^#(++(x, y), z))}
                Weak Rules:
                  {  ++(nil(), y) -> y
                   , ++(x, nil()) -> x
                   , ++^#(.(x, y), z) -> c_5(++^#(y, z))
                   , rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))
                   , rev(nil()) -> nil()
                   , rev(rev(x)) -> x}
              
              Details:         
                The problem is Match-bounded by 0.
                The enriched problem is compatible with the following automaton:
                {  nil_0() -> 2
                 , ._0(2, 2) -> 4
                 , ._0(2, 4) -> 4
                 , ._0(4, 2) -> 4
                 , ._0(4, 4) -> 4
                 , rev^#_0(2) -> 6
                 , rev^#_0(4) -> 6
                 , ++^#_0(2, 2) -> 10
                 , ++^#_0(2, 4) -> 10
                 , ++^#_0(4, 2) -> 10
                 , ++^#_0(4, 4) -> 10
                 , c_5_0(10) -> 10}
      
   2) {  rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))
       , ++^#(x, ++(y, z)) -> c_6(++^#(++(x, y), z))
       , ++^#(.(x, y), z) -> c_5(++^#(y, z))
       , ++^#(nil(), y) -> c_3()}
      
      The usable rules for this path are the following:
      {  rev(nil()) -> nil()
       , rev(rev(x)) -> x
       , rev(++(x, y)) -> ++(rev(y), rev(x))
       , ++(nil(), y) -> y
       , ++(x, nil()) -> x
       , ++(.(x, y), z) -> .(x, ++(y, z))
       , ++(x, ++(y, z)) -> ++(++(x, y), z)}
      
        We have applied the subprocessor on the union of usable rules and weak (innermost) dependency pairs.
        
          'Weight Gap Principle'
          ----------------------
          Answer:           YES(?,O(n^1))
          Input Problem:    innermost runtime-complexity with respect to
            Rules:
              {  rev(nil()) -> nil()
               , rev(rev(x)) -> x
               , rev(++(x, y)) -> ++(rev(y), rev(x))
               , ++(nil(), y) -> y
               , ++(x, nil()) -> x
               , ++(.(x, y), z) -> .(x, ++(y, z))
               , ++(x, ++(y, z)) -> ++(++(x, y), z)
               , ++^#(x, ++(y, z)) -> c_6(++^#(++(x, y), z))
               , ++^#(.(x, y), z) -> c_5(++^#(y, z))
               , rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))
               , ++^#(nil(), y) -> c_3()}
          
          Details:         
            We apply the weight gap principle, strictly orienting the rules
            {  rev(nil()) -> nil()
             , rev(rev(x)) -> x
             , ++^#(nil(), y) -> c_3()}
            and weakly orienting the rules
            {}
            using the following strongly linear interpretation:
              Processor 'Matrix Interpretation' oriented the following rules strictly:
              
              {  rev(nil()) -> nil()
               , rev(rev(x)) -> x
               , ++^#(nil(), y) -> c_3()}
              
              Details:
                 Interpretation Functions:
                  rev(x1) = [1] x1 + [1]
                  nil() = [0]
                  ++(x1, x2) = [1] x1 + [1] x2 + [0]
                  .(x1, x2) = [1] x1 + [1] x2 + [0]
                  make(x1) = [0] x1 + [0]
                  rev^#(x1) = [1] x1 + [1]
                  c_0() = [0]
                  c_1() = [0]
                  c_2(x1) = [1] x1 + [0]
                  ++^#(x1, x2) = [1] x1 + [1] x2 + [1]
                  c_3() = [0]
                  c_4() = [0]
                  c_5(x1) = [1] x1 + [0]
                  c_6(x1) = [1] x1 + [0]
                  make^#(x1) = [0] x1 + [0]
                  c_7() = [0]
              
            Finally we apply the subprocessor
            We apply the weight gap principle, strictly orienting the rules
            {rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))}
            and weakly orienting the rules
            {  rev(nil()) -> nil()
             , rev(rev(x)) -> x
             , ++^#(nil(), y) -> c_3()}
            using the following strongly linear interpretation:
              Processor 'Matrix Interpretation' oriented the following rules strictly:
              
              {rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))}
              
              Details:
                 Interpretation Functions:
                  rev(x1) = [1] x1 + [1]
                  nil() = [0]
                  ++(x1, x2) = [1] x1 + [1] x2 + [0]
                  .(x1, x2) = [1] x1 + [1] x2 + [0]
                  make(x1) = [0] x1 + [0]
                  rev^#(x1) = [1] x1 + [9]
                  c_0() = [0]
                  c_1() = [0]
                  c_2(x1) = [1] x1 + [0]
                  ++^#(x1, x2) = [1] x1 + [1] x2 + [1]
                  c_3() = [0]
                  c_4() = [0]
                  c_5(x1) = [1] x1 + [0]
                  c_6(x1) = [1] x1 + [0]
                  make^#(x1) = [0] x1 + [0]
                  c_7() = [0]
              
            Finally we apply the subprocessor
            We apply the weight gap principle, strictly orienting the rules
            {  ++(nil(), y) -> y
             , ++(x, nil()) -> x
             , ++^#(.(x, y), z) -> c_5(++^#(y, z))}
            and weakly orienting the rules
            {  rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))
             , rev(nil()) -> nil()
             , rev(rev(x)) -> x
             , ++^#(nil(), y) -> c_3()}
            using the following strongly linear interpretation:
              Processor 'Matrix Interpretation' oriented the following rules strictly:
              
              {  ++(nil(), y) -> y
               , ++(x, nil()) -> x
               , ++^#(.(x, y), z) -> c_5(++^#(y, z))}
              
              Details:
                 Interpretation Functions:
                  rev(x1) = [1] x1 + [1]
                  nil() = [2]
                  ++(x1, x2) = [1] x1 + [1] x2 + [0]
                  .(x1, x2) = [1] x1 + [1] x2 + [15]
                  make(x1) = [0] x1 + [0]
                  rev^#(x1) = [1] x1 + [9]
                  c_0() = [0]
                  c_1() = [0]
                  c_2(x1) = [1] x1 + [2]
                  ++^#(x1, x2) = [1] x1 + [1] x2 + [0]
                  c_3() = [0]
                  c_4() = [0]
                  c_5(x1) = [1] x1 + [0]
                  c_6(x1) = [1] x1 + [0]
                  make^#(x1) = [0] x1 + [0]
                  c_7() = [0]
              
            Finally we apply the subprocessor
            'fastest of 'combine', 'Bounds with default enrichment', 'Bounds with default enrichment''
            ------------------------------------------------------------------------------------------
            Answer:           YES(?,O(n^1))
            Input Problem:    innermost relative runtime-complexity with respect to
              Strict Rules:
                {  rev(++(x, y)) -> ++(rev(y), rev(x))
                 , ++(.(x, y), z) -> .(x, ++(y, z))
                 , ++(x, ++(y, z)) -> ++(++(x, y), z)
                 , ++^#(x, ++(y, z)) -> c_6(++^#(++(x, y), z))}
              Weak Rules:
                {  ++(nil(), y) -> y
                 , ++(x, nil()) -> x
                 , ++^#(.(x, y), z) -> c_5(++^#(y, z))
                 , rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))
                 , rev(nil()) -> nil()
                 , rev(rev(x)) -> x
                 , ++^#(nil(), y) -> c_3()}
            
            Details:         
              The problem was solved by processor 'Bounds with default enrichment':
              'Bounds with default enrichment'
              --------------------------------
              Answer:           YES(?,O(n^1))
              Input Problem:    innermost relative runtime-complexity with respect to
                Strict Rules:
                  {  rev(++(x, y)) -> ++(rev(y), rev(x))
                   , ++(.(x, y), z) -> .(x, ++(y, z))
                   , ++(x, ++(y, z)) -> ++(++(x, y), z)
                   , ++^#(x, ++(y, z)) -> c_6(++^#(++(x, y), z))}
                Weak Rules:
                  {  ++(nil(), y) -> y
                   , ++(x, nil()) -> x
                   , ++^#(.(x, y), z) -> c_5(++^#(y, z))
                   , rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))
                   , rev(nil()) -> nil()
                   , rev(rev(x)) -> x
                   , ++^#(nil(), y) -> c_3()}
              
              Details:         
                The problem is Match-bounded by 0.
                The enriched problem is compatible with the following automaton:
                {  nil_0() -> 2
                 , ._0(2, 2) -> 4
                 , ._0(2, 4) -> 4
                 , ._0(4, 2) -> 4
                 , ._0(4, 4) -> 4
                 , rev^#_0(2) -> 6
                 , rev^#_0(4) -> 6
                 , ++^#_0(2, 2) -> 10
                 , ++^#_0(2, 4) -> 10
                 , ++^#_0(4, 2) -> 10
                 , ++^#_0(4, 4) -> 10
                 , c_3_0() -> 10
                 , c_5_0(10) -> 10}
      
   3) {  rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))
       , ++^#(x, ++(y, z)) -> c_6(++^#(++(x, y), z))
       , ++^#(.(x, y), z) -> c_5(++^#(y, z))
       , ++^#(x, nil()) -> c_4()}
      
      The usable rules for this path are the following:
      {  rev(nil()) -> nil()
       , rev(rev(x)) -> x
       , rev(++(x, y)) -> ++(rev(y), rev(x))
       , ++(nil(), y) -> y
       , ++(x, nil()) -> x
       , ++(.(x, y), z) -> .(x, ++(y, z))
       , ++(x, ++(y, z)) -> ++(++(x, y), z)}
      
        We have applied the subprocessor on the union of usable rules and weak (innermost) dependency pairs.
        
          'Weight Gap Principle'
          ----------------------
          Answer:           YES(?,O(n^1))
          Input Problem:    innermost runtime-complexity with respect to
            Rules:
              {  rev(nil()) -> nil()
               , rev(rev(x)) -> x
               , rev(++(x, y)) -> ++(rev(y), rev(x))
               , ++(nil(), y) -> y
               , ++(x, nil()) -> x
               , ++(.(x, y), z) -> .(x, ++(y, z))
               , ++(x, ++(y, z)) -> ++(++(x, y), z)
               , ++^#(x, ++(y, z)) -> c_6(++^#(++(x, y), z))
               , ++^#(.(x, y), z) -> c_5(++^#(y, z))
               , rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))
               , ++^#(x, nil()) -> c_4()}
          
          Details:         
            We apply the weight gap principle, strictly orienting the rules
            {  rev(nil()) -> nil()
             , rev(rev(x)) -> x
             , ++^#(x, nil()) -> c_4()}
            and weakly orienting the rules
            {}
            using the following strongly linear interpretation:
              Processor 'Matrix Interpretation' oriented the following rules strictly:
              
              {  rev(nil()) -> nil()
               , rev(rev(x)) -> x
               , ++^#(x, nil()) -> c_4()}
              
              Details:
                 Interpretation Functions:
                  rev(x1) = [1] x1 + [1]
                  nil() = [0]
                  ++(x1, x2) = [1] x1 + [1] x2 + [0]
                  .(x1, x2) = [1] x1 + [1] x2 + [0]
                  make(x1) = [0] x1 + [0]
                  rev^#(x1) = [1] x1 + [1]
                  c_0() = [0]
                  c_1() = [0]
                  c_2(x1) = [1] x1 + [0]
                  ++^#(x1, x2) = [1] x1 + [1] x2 + [1]
                  c_3() = [0]
                  c_4() = [0]
                  c_5(x1) = [1] x1 + [0]
                  c_6(x1) = [1] x1 + [0]
                  make^#(x1) = [0] x1 + [0]
                  c_7() = [0]
              
            Finally we apply the subprocessor
            We apply the weight gap principle, strictly orienting the rules
            {rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))}
            and weakly orienting the rules
            {  rev(nil()) -> nil()
             , rev(rev(x)) -> x
             , ++^#(x, nil()) -> c_4()}
            using the following strongly linear interpretation:
              Processor 'Matrix Interpretation' oriented the following rules strictly:
              
              {rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))}
              
              Details:
                 Interpretation Functions:
                  rev(x1) = [1] x1 + [1]
                  nil() = [0]
                  ++(x1, x2) = [1] x1 + [1] x2 + [0]
                  .(x1, x2) = [1] x1 + [1] x2 + [0]
                  make(x1) = [0] x1 + [0]
                  rev^#(x1) = [1] x1 + [9]
                  c_0() = [0]
                  c_1() = [0]
                  c_2(x1) = [1] x1 + [0]
                  ++^#(x1, x2) = [1] x1 + [1] x2 + [1]
                  c_3() = [0]
                  c_4() = [0]
                  c_5(x1) = [1] x1 + [0]
                  c_6(x1) = [1] x1 + [0]
                  make^#(x1) = [0] x1 + [0]
                  c_7() = [0]
              
            Finally we apply the subprocessor
            We apply the weight gap principle, strictly orienting the rules
            {  ++(nil(), y) -> y
             , ++(x, nil()) -> x
             , ++^#(.(x, y), z) -> c_5(++^#(y, z))}
            and weakly orienting the rules
            {  rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))
             , rev(nil()) -> nil()
             , rev(rev(x)) -> x
             , ++^#(x, nil()) -> c_4()}
            using the following strongly linear interpretation:
              Processor 'Matrix Interpretation' oriented the following rules strictly:
              
              {  ++(nil(), y) -> y
               , ++(x, nil()) -> x
               , ++^#(.(x, y), z) -> c_5(++^#(y, z))}
              
              Details:
                 Interpretation Functions:
                  rev(x1) = [1] x1 + [1]
                  nil() = [2]
                  ++(x1, x2) = [1] x1 + [1] x2 + [0]
                  .(x1, x2) = [1] x1 + [1] x2 + [15]
                  make(x1) = [0] x1 + [0]
                  rev^#(x1) = [1] x1 + [9]
                  c_0() = [0]
                  c_1() = [0]
                  c_2(x1) = [1] x1 + [2]
                  ++^#(x1, x2) = [1] x1 + [1] x2 + [0]
                  c_3() = [0]
                  c_4() = [0]
                  c_5(x1) = [1] x1 + [0]
                  c_6(x1) = [1] x1 + [0]
                  make^#(x1) = [0] x1 + [0]
                  c_7() = [0]
              
            Finally we apply the subprocessor
            'fastest of 'combine', 'Bounds with default enrichment', 'Bounds with default enrichment''
            ------------------------------------------------------------------------------------------
            Answer:           YES(?,O(n^1))
            Input Problem:    innermost relative runtime-complexity with respect to
              Strict Rules:
                {  rev(++(x, y)) -> ++(rev(y), rev(x))
                 , ++(.(x, y), z) -> .(x, ++(y, z))
                 , ++(x, ++(y, z)) -> ++(++(x, y), z)
                 , ++^#(x, ++(y, z)) -> c_6(++^#(++(x, y), z))}
              Weak Rules:
                {  ++(nil(), y) -> y
                 , ++(x, nil()) -> x
                 , ++^#(.(x, y), z) -> c_5(++^#(y, z))
                 , rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))
                 , rev(nil()) -> nil()
                 , rev(rev(x)) -> x
                 , ++^#(x, nil()) -> c_4()}
            
            Details:         
              The problem was solved by processor 'Bounds with default enrichment':
              'Bounds with default enrichment'
              --------------------------------
              Answer:           YES(?,O(n^1))
              Input Problem:    innermost relative runtime-complexity with respect to
                Strict Rules:
                  {  rev(++(x, y)) -> ++(rev(y), rev(x))
                   , ++(.(x, y), z) -> .(x, ++(y, z))
                   , ++(x, ++(y, z)) -> ++(++(x, y), z)
                   , ++^#(x, ++(y, z)) -> c_6(++^#(++(x, y), z))}
                Weak Rules:
                  {  ++(nil(), y) -> y
                   , ++(x, nil()) -> x
                   , ++^#(.(x, y), z) -> c_5(++^#(y, z))
                   , rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))
                   , rev(nil()) -> nil()
                   , rev(rev(x)) -> x
                   , ++^#(x, nil()) -> c_4()}
              
              Details:         
                The problem is Match-bounded by 0.
                The enriched problem is compatible with the following automaton:
                {  nil_0() -> 2
                 , ._0(2, 2) -> 4
                 , ._0(2, 4) -> 4
                 , ._0(4, 2) -> 4
                 , ._0(4, 4) -> 4
                 , rev^#_0(2) -> 6
                 , rev^#_0(4) -> 6
                 , ++^#_0(2, 2) -> 10
                 , ++^#_0(2, 4) -> 10
                 , ++^#_0(4, 2) -> 10
                 , ++^#_0(4, 4) -> 10
                 , c_4_0() -> 10
                 , c_5_0(10) -> 10}
      
   4) {  rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))
       , ++^#(x, nil()) -> c_4()}
      
      The usable rules for this path are the following:
      {  rev(nil()) -> nil()
       , rev(rev(x)) -> x
       , rev(++(x, y)) -> ++(rev(y), rev(x))
       , ++(nil(), y) -> y
       , ++(x, nil()) -> x
       , ++(.(x, y), z) -> .(x, ++(y, z))
       , ++(x, ++(y, z)) -> ++(++(x, y), z)}
      
        We have applied the subprocessor on the union of usable rules and weak (innermost) dependency pairs.
        
          'Weight Gap Principle'
          ----------------------
          Answer:           YES(?,O(n^1))
          Input Problem:    innermost runtime-complexity with respect to
            Rules:
              {  rev(nil()) -> nil()
               , rev(rev(x)) -> x
               , rev(++(x, y)) -> ++(rev(y), rev(x))
               , ++(nil(), y) -> y
               , ++(x, nil()) -> x
               , ++(.(x, y), z) -> .(x, ++(y, z))
               , ++(x, ++(y, z)) -> ++(++(x, y), z)
               , rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))
               , ++^#(x, nil()) -> c_4()}
          
          Details:         
            We apply the weight gap principle, strictly orienting the rules
            {  rev(nil()) -> nil()
             , rev(rev(x)) -> x}
            and weakly orienting the rules
            {}
            using the following strongly linear interpretation:
              Processor 'Matrix Interpretation' oriented the following rules strictly:
              
              {  rev(nil()) -> nil()
               , rev(rev(x)) -> x}
              
              Details:
                 Interpretation Functions:
                  rev(x1) = [1] x1 + [1]
                  nil() = [0]
                  ++(x1, x2) = [1] x1 + [1] x2 + [0]
                  .(x1, x2) = [1] x1 + [1] x2 + [0]
                  make(x1) = [0] x1 + [0]
                  rev^#(x1) = [1] x1 + [1]
                  c_0() = [0]
                  c_1() = [0]
                  c_2(x1) = [1] x1 + [1]
                  ++^#(x1, x2) = [1] x1 + [1] x2 + [0]
                  c_3() = [0]
                  c_4() = [0]
                  c_5(x1) = [0] x1 + [0]
                  c_6(x1) = [0] x1 + [0]
                  make^#(x1) = [0] x1 + [0]
                  c_7() = [0]
              
            Finally we apply the subprocessor
            We apply the weight gap principle, strictly orienting the rules
            {++^#(x, nil()) -> c_4()}
            and weakly orienting the rules
            {  rev(nil()) -> nil()
             , rev(rev(x)) -> x}
            using the following strongly linear interpretation:
              Processor 'Matrix Interpretation' oriented the following rules strictly:
              
              {++^#(x, nil()) -> c_4()}
              
              Details:
                 Interpretation Functions:
                  rev(x1) = [1] x1 + [1]
                  nil() = [0]
                  ++(x1, x2) = [1] x1 + [1] x2 + [0]
                  .(x1, x2) = [1] x1 + [1] x2 + [0]
                  make(x1) = [0] x1 + [0]
                  rev^#(x1) = [1] x1 + [1]
                  c_0() = [0]
                  c_1() = [0]
                  c_2(x1) = [1] x1 + [2]
                  ++^#(x1, x2) = [1] x1 + [1] x2 + [8]
                  c_3() = [0]
                  c_4() = [0]
                  c_5(x1) = [0] x1 + [0]
                  c_6(x1) = [0] x1 + [0]
                  make^#(x1) = [0] x1 + [0]
                  c_7() = [0]
              
            Finally we apply the subprocessor
            We apply the weight gap principle, strictly orienting the rules
            {rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))}
            and weakly orienting the rules
            {  ++^#(x, nil()) -> c_4()
             , rev(nil()) -> nil()
             , rev(rev(x)) -> x}
            using the following strongly linear interpretation:
              Processor 'Matrix Interpretation' oriented the following rules strictly:
              
              {rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))}
              
              Details:
                 Interpretation Functions:
                  rev(x1) = [1] x1 + [1]
                  nil() = [0]
                  ++(x1, x2) = [1] x1 + [1] x2 + [0]
                  .(x1, x2) = [1] x1 + [1] x2 + [0]
                  make(x1) = [0] x1 + [0]
                  rev^#(x1) = [1] x1 + [9]
                  c_0() = [0]
                  c_1() = [0]
                  c_2(x1) = [1] x1 + [1]
                  ++^#(x1, x2) = [1] x1 + [1] x2 + [0]
                  c_3() = [0]
                  c_4() = [0]
                  c_5(x1) = [0] x1 + [0]
                  c_6(x1) = [0] x1 + [0]
                  make^#(x1) = [0] x1 + [0]
                  c_7() = [0]
              
            Finally we apply the subprocessor
            We apply the weight gap principle, strictly orienting the rules
            {  ++(nil(), y) -> y
             , ++(x, nil()) -> x}
            and weakly orienting the rules
            {  rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))
             , ++^#(x, nil()) -> c_4()
             , rev(nil()) -> nil()
             , rev(rev(x)) -> x}
            using the following strongly linear interpretation:
              Processor 'Matrix Interpretation' oriented the following rules strictly:
              
              {  ++(nil(), y) -> y
               , ++(x, nil()) -> x}
              
              Details:
                 Interpretation Functions:
                  rev(x1) = [1] x1 + [0]
                  nil() = [0]
                  ++(x1, x2) = [1] x1 + [1] x2 + [2]
                  .(x1, x2) = [1] x1 + [1] x2 + [14]
                  make(x1) = [0] x1 + [0]
                  rev^#(x1) = [1] x1 + [1]
                  c_0() = [0]
                  c_1() = [0]
                  c_2(x1) = [1] x1 + [1]
                  ++^#(x1, x2) = [1] x1 + [1] x2 + [0]
                  c_3() = [0]
                  c_4() = [0]
                  c_5(x1) = [0] x1 + [0]
                  c_6(x1) = [0] x1 + [0]
                  make^#(x1) = [0] x1 + [0]
                  c_7() = [0]
              
            Finally we apply the subprocessor
            'fastest of 'combine', 'Bounds with default enrichment', 'Bounds with default enrichment''
            ------------------------------------------------------------------------------------------
            Answer:           YES(?,O(n^1))
            Input Problem:    innermost relative runtime-complexity with respect to
              Strict Rules:
                {  rev(++(x, y)) -> ++(rev(y), rev(x))
                 , ++(.(x, y), z) -> .(x, ++(y, z))
                 , ++(x, ++(y, z)) -> ++(++(x, y), z)}
              Weak Rules:
                {  ++(nil(), y) -> y
                 , ++(x, nil()) -> x
                 , rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))
                 , ++^#(x, nil()) -> c_4()
                 , rev(nil()) -> nil()
                 , rev(rev(x)) -> x}
            
            Details:         
              The problem was solved by processor 'Bounds with default enrichment':
              'Bounds with default enrichment'
              --------------------------------
              Answer:           YES(?,O(n^1))
              Input Problem:    innermost relative runtime-complexity with respect to
                Strict Rules:
                  {  rev(++(x, y)) -> ++(rev(y), rev(x))
                   , ++(.(x, y), z) -> .(x, ++(y, z))
                   , ++(x, ++(y, z)) -> ++(++(x, y), z)}
                Weak Rules:
                  {  ++(nil(), y) -> y
                   , ++(x, nil()) -> x
                   , rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))
                   , ++^#(x, nil()) -> c_4()
                   , rev(nil()) -> nil()
                   , rev(rev(x)) -> x}
              
              Details:         
                The problem is Match-bounded by 0.
                The enriched problem is compatible with the following automaton:
                {  nil_0() -> 2
                 , ._0(2, 2) -> 4
                 , ._0(2, 4) -> 4
                 , ._0(4, 2) -> 4
                 , ._0(4, 4) -> 4
                 , rev^#_0(2) -> 6
                 , rev^#_0(4) -> 6
                 , ++^#_0(2, 2) -> 10
                 , ++^#_0(2, 4) -> 10
                 , ++^#_0(4, 2) -> 10
                 , ++^#_0(4, 4) -> 10
                 , c_4_0() -> 10}
      
   5) {  rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))
       , ++^#(nil(), y) -> c_3()}
      
      The usable rules for this path are the following:
      {  rev(nil()) -> nil()
       , rev(rev(x)) -> x
       , rev(++(x, y)) -> ++(rev(y), rev(x))
       , ++(nil(), y) -> y
       , ++(x, nil()) -> x
       , ++(.(x, y), z) -> .(x, ++(y, z))
       , ++(x, ++(y, z)) -> ++(++(x, y), z)}
      
        We have applied the subprocessor on the union of usable rules and weak (innermost) dependency pairs.
        
          'Weight Gap Principle'
          ----------------------
          Answer:           YES(?,O(n^1))
          Input Problem:    innermost runtime-complexity with respect to
            Rules:
              {  rev(nil()) -> nil()
               , rev(rev(x)) -> x
               , rev(++(x, y)) -> ++(rev(y), rev(x))
               , ++(nil(), y) -> y
               , ++(x, nil()) -> x
               , ++(.(x, y), z) -> .(x, ++(y, z))
               , ++(x, ++(y, z)) -> ++(++(x, y), z)
               , rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))
               , ++^#(nil(), y) -> c_3()}
          
          Details:         
            We apply the weight gap principle, strictly orienting the rules
            {  rev(nil()) -> nil()
             , rev(rev(x)) -> x}
            and weakly orienting the rules
            {}
            using the following strongly linear interpretation:
              Processor 'Matrix Interpretation' oriented the following rules strictly:
              
              {  rev(nil()) -> nil()
               , rev(rev(x)) -> x}
              
              Details:
                 Interpretation Functions:
                  rev(x1) = [1] x1 + [1]
                  nil() = [0]
                  ++(x1, x2) = [1] x1 + [1] x2 + [0]
                  .(x1, x2) = [1] x1 + [1] x2 + [0]
                  make(x1) = [0] x1 + [0]
                  rev^#(x1) = [1] x1 + [1]
                  c_0() = [0]
                  c_1() = [0]
                  c_2(x1) = [1] x1 + [1]
                  ++^#(x1, x2) = [1] x1 + [1] x2 + [0]
                  c_3() = [0]
                  c_4() = [0]
                  c_5(x1) = [0] x1 + [0]
                  c_6(x1) = [0] x1 + [0]
                  make^#(x1) = [0] x1 + [0]
                  c_7() = [0]
              
            Finally we apply the subprocessor
            We apply the weight gap principle, strictly orienting the rules
            {++^#(nil(), y) -> c_3()}
            and weakly orienting the rules
            {  rev(nil()) -> nil()
             , rev(rev(x)) -> x}
            using the following strongly linear interpretation:
              Processor 'Matrix Interpretation' oriented the following rules strictly:
              
              {++^#(nil(), y) -> c_3()}
              
              Details:
                 Interpretation Functions:
                  rev(x1) = [1] x1 + [1]
                  nil() = [0]
                  ++(x1, x2) = [1] x1 + [1] x2 + [0]
                  .(x1, x2) = [1] x1 + [1] x2 + [0]
                  make(x1) = [0] x1 + [0]
                  rev^#(x1) = [1] x1 + [1]
                  c_0() = [0]
                  c_1() = [0]
                  c_2(x1) = [1] x1 + [2]
                  ++^#(x1, x2) = [1] x1 + [1] x2 + [8]
                  c_3() = [0]
                  c_4() = [0]
                  c_5(x1) = [0] x1 + [0]
                  c_6(x1) = [0] x1 + [0]
                  make^#(x1) = [0] x1 + [0]
                  c_7() = [0]
              
            Finally we apply the subprocessor
            We apply the weight gap principle, strictly orienting the rules
            {rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))}
            and weakly orienting the rules
            {  ++^#(nil(), y) -> c_3()
             , rev(nil()) -> nil()
             , rev(rev(x)) -> x}
            using the following strongly linear interpretation:
              Processor 'Matrix Interpretation' oriented the following rules strictly:
              
              {rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))}
              
              Details:
                 Interpretation Functions:
                  rev(x1) = [1] x1 + [1]
                  nil() = [0]
                  ++(x1, x2) = [1] x1 + [1] x2 + [0]
                  .(x1, x2) = [1] x1 + [1] x2 + [0]
                  make(x1) = [0] x1 + [0]
                  rev^#(x1) = [1] x1 + [9]
                  c_0() = [0]
                  c_1() = [0]
                  c_2(x1) = [1] x1 + [1]
                  ++^#(x1, x2) = [1] x1 + [1] x2 + [0]
                  c_3() = [0]
                  c_4() = [0]
                  c_5(x1) = [0] x1 + [0]
                  c_6(x1) = [0] x1 + [0]
                  make^#(x1) = [0] x1 + [0]
                  c_7() = [0]
              
            Finally we apply the subprocessor
            We apply the weight gap principle, strictly orienting the rules
            {  ++(nil(), y) -> y
             , ++(x, nil()) -> x}
            and weakly orienting the rules
            {  rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))
             , ++^#(nil(), y) -> c_3()
             , rev(nil()) -> nil()
             , rev(rev(x)) -> x}
            using the following strongly linear interpretation:
              Processor 'Matrix Interpretation' oriented the following rules strictly:
              
              {  ++(nil(), y) -> y
               , ++(x, nil()) -> x}
              
              Details:
                 Interpretation Functions:
                  rev(x1) = [1] x1 + [0]
                  nil() = [0]
                  ++(x1, x2) = [1] x1 + [1] x2 + [2]
                  .(x1, x2) = [1] x1 + [1] x2 + [14]
                  make(x1) = [0] x1 + [0]
                  rev^#(x1) = [1] x1 + [1]
                  c_0() = [0]
                  c_1() = [0]
                  c_2(x1) = [1] x1 + [1]
                  ++^#(x1, x2) = [1] x1 + [1] x2 + [0]
                  c_3() = [0]
                  c_4() = [0]
                  c_5(x1) = [0] x1 + [0]
                  c_6(x1) = [0] x1 + [0]
                  make^#(x1) = [0] x1 + [0]
                  c_7() = [0]
              
            Finally we apply the subprocessor
            'fastest of 'combine', 'Bounds with default enrichment', 'Bounds with default enrichment''
            ------------------------------------------------------------------------------------------
            Answer:           YES(?,O(n^1))
            Input Problem:    innermost relative runtime-complexity with respect to
              Strict Rules:
                {  rev(++(x, y)) -> ++(rev(y), rev(x))
                 , ++(.(x, y), z) -> .(x, ++(y, z))
                 , ++(x, ++(y, z)) -> ++(++(x, y), z)}
              Weak Rules:
                {  ++(nil(), y) -> y
                 , ++(x, nil()) -> x
                 , rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))
                 , ++^#(nil(), y) -> c_3()
                 , rev(nil()) -> nil()
                 , rev(rev(x)) -> x}
            
            Details:         
              The problem was solved by processor 'Bounds with default enrichment':
              'Bounds with default enrichment'
              --------------------------------
              Answer:           YES(?,O(n^1))
              Input Problem:    innermost relative runtime-complexity with respect to
                Strict Rules:
                  {  rev(++(x, y)) -> ++(rev(y), rev(x))
                   , ++(.(x, y), z) -> .(x, ++(y, z))
                   , ++(x, ++(y, z)) -> ++(++(x, y), z)}
                Weak Rules:
                  {  ++(nil(), y) -> y
                   , ++(x, nil()) -> x
                   , rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))
                   , ++^#(nil(), y) -> c_3()
                   , rev(nil()) -> nil()
                   , rev(rev(x)) -> x}
              
              Details:         
                The problem is Match-bounded by 0.
                The enriched problem is compatible with the following automaton:
                {  nil_0() -> 2
                 , ._0(2, 2) -> 4
                 , ._0(2, 4) -> 4
                 , ._0(4, 2) -> 4
                 , ._0(4, 4) -> 4
                 , rev^#_0(2) -> 6
                 , rev^#_0(4) -> 6
                 , ++^#_0(2, 2) -> 10
                 , ++^#_0(2, 4) -> 10
                 , ++^#_0(4, 2) -> 10
                 , ++^#_0(4, 4) -> 10
                 , c_3_0() -> 10}
      
   6) {rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))}
      
      The usable rules for this path are the following:
      {  rev(nil()) -> nil()
       , rev(rev(x)) -> x
       , rev(++(x, y)) -> ++(rev(y), rev(x))
       , ++(nil(), y) -> y
       , ++(x, nil()) -> x
       , ++(.(x, y), z) -> .(x, ++(y, z))
       , ++(x, ++(y, z)) -> ++(++(x, y), z)}
      
        We have applied the subprocessor on the union of usable rules and weak (innermost) dependency pairs.
        
          'Weight Gap Principle'
          ----------------------
          Answer:           YES(?,O(n^1))
          Input Problem:    innermost runtime-complexity with respect to
            Rules:
              {  rev(nil()) -> nil()
               , rev(rev(x)) -> x
               , rev(++(x, y)) -> ++(rev(y), rev(x))
               , ++(nil(), y) -> y
               , ++(x, nil()) -> x
               , ++(.(x, y), z) -> .(x, ++(y, z))
               , ++(x, ++(y, z)) -> ++(++(x, y), z)
               , rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))}
          
          Details:         
            We apply the weight gap principle, strictly orienting the rules
            {  rev(nil()) -> nil()
             , rev(rev(x)) -> x}
            and weakly orienting the rules
            {}
            using the following strongly linear interpretation:
              Processor 'Matrix Interpretation' oriented the following rules strictly:
              
              {  rev(nil()) -> nil()
               , rev(rev(x)) -> x}
              
              Details:
                 Interpretation Functions:
                  rev(x1) = [1] x1 + [1]
                  nil() = [0]
                  ++(x1, x2) = [1] x1 + [1] x2 + [0]
                  .(x1, x2) = [1] x1 + [1] x2 + [0]
                  make(x1) = [0] x1 + [0]
                  rev^#(x1) = [1] x1 + [1]
                  c_0() = [0]
                  c_1() = [0]
                  c_2(x1) = [1] x1 + [1]
                  ++^#(x1, x2) = [1] x1 + [1] x2 + [0]
                  c_3() = [0]
                  c_4() = [0]
                  c_5(x1) = [0] x1 + [0]
                  c_6(x1) = [0] x1 + [0]
                  make^#(x1) = [0] x1 + [0]
                  c_7() = [0]
              
            Finally we apply the subprocessor
            We apply the weight gap principle, strictly orienting the rules
            {rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))}
            and weakly orienting the rules
            {  rev(nil()) -> nil()
             , rev(rev(x)) -> x}
            using the following strongly linear interpretation:
              Processor 'Matrix Interpretation' oriented the following rules strictly:
              
              {rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))}
              
              Details:
                 Interpretation Functions:
                  rev(x1) = [1] x1 + [1]
                  nil() = [0]
                  ++(x1, x2) = [1] x1 + [1] x2 + [0]
                  .(x1, x2) = [1] x1 + [1] x2 + [0]
                  make(x1) = [0] x1 + [0]
                  rev^#(x1) = [1] x1 + [3]
                  c_0() = [0]
                  c_1() = [0]
                  c_2(x1) = [1] x1 + [0]
                  ++^#(x1, x2) = [1] x1 + [1] x2 + [0]
                  c_3() = [0]
                  c_4() = [0]
                  c_5(x1) = [0] x1 + [0]
                  c_6(x1) = [0] x1 + [0]
                  make^#(x1) = [0] x1 + [0]
                  c_7() = [0]
              
            Finally we apply the subprocessor
            We apply the weight gap principle, strictly orienting the rules
            {  ++(nil(), y) -> y
             , ++(x, nil()) -> x}
            and weakly orienting the rules
            {  rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))
             , rev(nil()) -> nil()
             , rev(rev(x)) -> x}
            using the following strongly linear interpretation:
              Processor 'Matrix Interpretation' oriented the following rules strictly:
              
              {  ++(nil(), y) -> y
               , ++(x, nil()) -> x}
              
              Details:
                 Interpretation Functions:
                  rev(x1) = [1] x1 + [1]
                  nil() = [4]
                  ++(x1, x2) = [1] x1 + [1] x2 + [0]
                  .(x1, x2) = [1] x1 + [1] x2 + [0]
                  make(x1) = [0] x1 + [0]
                  rev^#(x1) = [1] x1 + [5]
                  c_0() = [0]
                  c_1() = [0]
                  c_2(x1) = [1] x1 + [3]
                  ++^#(x1, x2) = [1] x1 + [1] x2 + [0]
                  c_3() = [0]
                  c_4() = [0]
                  c_5(x1) = [0] x1 + [0]
                  c_6(x1) = [0] x1 + [0]
                  make^#(x1) = [0] x1 + [0]
                  c_7() = [0]
              
            Finally we apply the subprocessor
            'fastest of 'combine', 'Bounds with default enrichment', 'Bounds with default enrichment''
            ------------------------------------------------------------------------------------------
            Answer:           YES(?,O(n^1))
            Input Problem:    innermost relative runtime-complexity with respect to
              Strict Rules:
                {  rev(++(x, y)) -> ++(rev(y), rev(x))
                 , ++(.(x, y), z) -> .(x, ++(y, z))
                 , ++(x, ++(y, z)) -> ++(++(x, y), z)}
              Weak Rules:
                {  ++(nil(), y) -> y
                 , ++(x, nil()) -> x
                 , rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))
                 , rev(nil()) -> nil()
                 , rev(rev(x)) -> x}
            
            Details:         
              The problem was solved by processor 'Bounds with default enrichment':
              'Bounds with default enrichment'
              --------------------------------
              Answer:           YES(?,O(n^1))
              Input Problem:    innermost relative runtime-complexity with respect to
                Strict Rules:
                  {  rev(++(x, y)) -> ++(rev(y), rev(x))
                   , ++(.(x, y), z) -> .(x, ++(y, z))
                   , ++(x, ++(y, z)) -> ++(++(x, y), z)}
                Weak Rules:
                  {  ++(nil(), y) -> y
                   , ++(x, nil()) -> x
                   , rev^#(++(x, y)) -> c_2(++^#(rev(y), rev(x)))
                   , rev(nil()) -> nil()
                   , rev(rev(x)) -> x}
              
              Details:         
                The problem is Match-bounded by 0.
                The enriched problem is compatible with the following automaton:
                {  nil_0() -> 2
                 , ._0(2, 2) -> 4
                 , ._0(2, 4) -> 4
                 , ._0(4, 2) -> 4
                 , ._0(4, 4) -> 4
                 , rev^#_0(2) -> 6
                 , rev^#_0(4) -> 6
                 , ++^#_0(2, 2) -> 10
                 , ++^#_0(2, 4) -> 10
                 , ++^#_0(4, 2) -> 10
                 , ++^#_0(4, 4) -> 10}
      
   7) {rev^#(nil()) -> c_0()}
      
      The usable rules for this path are empty.
      
        We have oriented the usable rules with the following strongly linear interpretation:
          Interpretation Functions:
           rev(x1) = [0] x1 + [0]
           nil() = [0]
           ++(x1, x2) = [0] x1 + [0] x2 + [0]
           .(x1, x2) = [0] x1 + [0] x2 + [0]
           make(x1) = [0] x1 + [0]
           rev^#(x1) = [0] x1 + [0]
           c_0() = [0]
           c_1() = [0]
           c_2(x1) = [0] x1 + [0]
           ++^#(x1, x2) = [0] x1 + [0] x2 + [0]
           c_3() = [0]
           c_4() = [0]
           c_5(x1) = [0] x1 + [0]
           c_6(x1) = [0] x1 + [0]
           make^#(x1) = [0] x1 + [0]
           c_7() = [0]
        
        We have applied the subprocessor on the resulting DP-problem:
        
          'Weight Gap Principle'
          ----------------------
          Answer:           YES(?,O(n^1))
          Input Problem:    innermost DP runtime-complexity with respect to
            Strict Rules: {rev^#(nil()) -> c_0()}
            Weak Rules: {}
          
          Details:         
            We apply the weight gap principle, strictly orienting the rules
            {rev^#(nil()) -> c_0()}
            and weakly orienting the rules
            {}
            using the following strongly linear interpretation:
              Processor 'Matrix Interpretation' oriented the following rules strictly:
              
              {rev^#(nil()) -> c_0()}
              
              Details:
                 Interpretation Functions:
                  rev(x1) = [0] x1 + [0]
                  nil() = [0]
                  ++(x1, x2) = [0] x1 + [0] x2 + [0]
                  .(x1, x2) = [0] x1 + [0] x2 + [0]
                  make(x1) = [0] x1 + [0]
                  rev^#(x1) = [1] x1 + [1]
                  c_0() = [0]
                  c_1() = [0]
                  c_2(x1) = [0] x1 + [0]
                  ++^#(x1, x2) = [0] x1 + [0] x2 + [0]
                  c_3() = [0]
                  c_4() = [0]
                  c_5(x1) = [0] x1 + [0]
                  c_6(x1) = [0] x1 + [0]
                  make^#(x1) = [0] x1 + [0]
                  c_7() = [0]
              
            Finally we apply the subprocessor
            'Empty TRS'
            -----------
            Answer:           YES(?,O(1))
            Input Problem:    innermost DP runtime-complexity with respect to
              Strict Rules: {}
              Weak Rules: {rev^#(nil()) -> c_0()}
            
            Details:         
              The given problem does not contain any strict rules
      
   8) {rev^#(rev(x)) -> c_1()}
      
      The usable rules for this path are empty.
      
        We have oriented the usable rules with the following strongly linear interpretation:
          Interpretation Functions:
           rev(x1) = [0] x1 + [0]
           nil() = [0]
           ++(x1, x2) = [0] x1 + [0] x2 + [0]
           .(x1, x2) = [0] x1 + [0] x2 + [0]
           make(x1) = [0] x1 + [0]
           rev^#(x1) = [0] x1 + [0]
           c_0() = [0]
           c_1() = [0]
           c_2(x1) = [0] x1 + [0]
           ++^#(x1, x2) = [0] x1 + [0] x2 + [0]
           c_3() = [0]
           c_4() = [0]
           c_5(x1) = [0] x1 + [0]
           c_6(x1) = [0] x1 + [0]
           make^#(x1) = [0] x1 + [0]
           c_7() = [0]
        
        We have applied the subprocessor on the resulting DP-problem:
        
          'Weight Gap Principle'
          ----------------------
          Answer:           YES(?,O(n^1))
          Input Problem:    innermost DP runtime-complexity with respect to
            Strict Rules: {rev^#(rev(x)) -> c_1()}
            Weak Rules: {}
          
          Details:         
            We apply the weight gap principle, strictly orienting the rules
            {rev^#(rev(x)) -> c_1()}
            and weakly orienting the rules
            {}
            using the following strongly linear interpretation:
              Processor 'Matrix Interpretation' oriented the following rules strictly:
              
              {rev^#(rev(x)) -> c_1()}
              
              Details:
                 Interpretation Functions:
                  rev(x1) = [1] x1 + [0]
                  nil() = [0]
                  ++(x1, x2) = [0] x1 + [0] x2 + [0]
                  .(x1, x2) = [0] x1 + [0] x2 + [0]
                  make(x1) = [0] x1 + [0]
                  rev^#(x1) = [1] x1 + [1]
                  c_0() = [0]
                  c_1() = [0]
                  c_2(x1) = [0] x1 + [0]
                  ++^#(x1, x2) = [0] x1 + [0] x2 + [0]
                  c_3() = [0]
                  c_4() = [0]
                  c_5(x1) = [0] x1 + [0]
                  c_6(x1) = [0] x1 + [0]
                  make^#(x1) = [0] x1 + [0]
                  c_7() = [0]
              
            Finally we apply the subprocessor
            'Empty TRS'
            -----------
            Answer:           YES(?,O(1))
            Input Problem:    innermost DP runtime-complexity with respect to
              Strict Rules: {}
              Weak Rules: {rev^#(rev(x)) -> c_1()}
            
            Details:         
              The given problem does not contain any strict rules
      
   9) {make^#(x) -> c_7()}
      
      The usable rules for this path are empty.
      
        We have oriented the usable rules with the following strongly linear interpretation:
          Interpretation Functions:
           rev(x1) = [0] x1 + [0]
           nil() = [0]
           ++(x1, x2) = [0] x1 + [0] x2 + [0]
           .(x1, x2) = [0] x1 + [0] x2 + [0]
           make(x1) = [0] x1 + [0]
           rev^#(x1) = [0] x1 + [0]
           c_0() = [0]
           c_1() = [0]
           c_2(x1) = [0] x1 + [0]
           ++^#(x1, x2) = [0] x1 + [0] x2 + [0]
           c_3() = [0]
           c_4() = [0]
           c_5(x1) = [0] x1 + [0]
           c_6(x1) = [0] x1 + [0]
           make^#(x1) = [0] x1 + [0]
           c_7() = [0]
        
        We have applied the subprocessor on the resulting DP-problem:
        
          'Weight Gap Principle'
          ----------------------
          Answer:           YES(?,O(n^1))
          Input Problem:    innermost DP runtime-complexity with respect to
            Strict Rules: {make^#(x) -> c_7()}
            Weak Rules: {}
          
          Details:         
            We apply the weight gap principle, strictly orienting the rules
            {make^#(x) -> c_7()}
            and weakly orienting the rules
            {}
            using the following strongly linear interpretation:
              Processor 'Matrix Interpretation' oriented the following rules strictly:
              
              {make^#(x) -> c_7()}
              
              Details:
                 Interpretation Functions:
                  rev(x1) = [0] x1 + [0]
                  nil() = [0]
                  ++(x1, x2) = [0] x1 + [0] x2 + [0]
                  .(x1, x2) = [0] x1 + [0] x2 + [0]
                  make(x1) = [0] x1 + [0]
                  rev^#(x1) = [0] x1 + [0]
                  c_0() = [0]
                  c_1() = [0]
                  c_2(x1) = [0] x1 + [0]
                  ++^#(x1, x2) = [0] x1 + [0] x2 + [0]
                  c_3() = [0]
                  c_4() = [0]
                  c_5(x1) = [0] x1 + [0]
                  c_6(x1) = [0] x1 + [0]
                  make^#(x1) = [1] x1 + [4]
                  c_7() = [0]
              
            Finally we apply the subprocessor
            'Empty TRS'
            -----------
            Answer:           YES(?,O(1))
            Input Problem:    innermost DP runtime-complexity with respect to
              Strict Rules: {}
              Weak Rules: {make^#(x) -> c_7()}
            
            Details:         
              The given problem does not contain any strict rules